# Copyright (c) 2008, Miika Vesti
# All rights reserved.
#
# Redistribution and use in source and binary forms, 
# with or without modification, are permitted provided
# that the following conditions are met:
#
# 1. Redistributions of source code must retain the above
#    copyright notice, this list of conditions and the
#    following disclaimer.
# 2. Redistributions in binary form must reproduce the
#    above copyright notice, this list of conditions
#    and the following disclaimer in the documentation
#    and/or other materials provided with the distribution.
# 3. Neither the name of the <NO ORGANIZATION> nor the names
#    of its contributors may be used to endorse or promote
#    products derived from this software without specific
#    prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#

import cjson
import string
from urllib import unquote
from xmlrpclib import ServerProxy
from settings import *

CONTROL_PARAMETERS = {	'start': ['info_hash'],
						'stop': ['info_hash'],
						'add': [''],
						'delete': ['info_hash']}

def control(action, *params):
	xmlrpc = ServerProxy(XMLRPC_URL)
	_control = getattr(xmlrpc, 'd.' + action)
	return cjson.encode(_control(*params))

def index(req):
	args = req.__getattribute__('args')
	GET = dict([part.split('=') for part in unquote(str(args)).split('&')])
	action = GET.get('action', None)
	params = []
	for name in CONTROL_PARAMETERS[action]:
		params.append(GET[name])
	return control(action, *params)